import { defineStore } from 'pinia'


export const useMainStore = defineStore('main', {
    /**
     * 类似于组件data，用来存储全局状态
     * @returns 
     */
    state:()=>{
        return {
            count:1000,
            foo:'你好',
            arr:[1,23,4,5]
        }
    },
    
    /***
     * 类似于coumputed，用来发呢改装计算属性，有缓存的功能
     */
    getters:{
        /* constAdd(state){
            console.log('state调用了')
            return state.count+10
        } */

        //TODO:如果getters中使用this的话需要手动指定返回值的类型 
        constAdd():number{
            console.log('state调用了')
            return this.count+10
        }
    },

    /**
     * 类似于methods，封装业务逻辑，修改state
     *  */ 
    actions:{
        chageState(num:number){
            this.count+=num;
            this.foo='actions',
            this.arr.push(666)
        }
    }
})